home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / MNetsrc.hqx / Mac TCP_IP Source v.33 / udpdump.c < prev    next >
C/C++ Source or Header  |  1989-02-22  |  1KB  |  73 lines

  1. #include <stdio.h>
  2. #include "global.h"
  3. #include "mbuf.h"
  4. #include "netuser.h"
  5. #include "internet.h"
  6. #include "udp.h"
  7.  
  8. #ifdef MAC
  9.     extern int tcptrcflg;
  10.     extern FILE *trcwndp;
  11. #endif
  12.  
  13. /* Dump a UDP header */
  14. void
  15. udp_dump(bpp,source,dest,check)
  16. struct mbuf **bpp;
  17. int32 source,dest;
  18. int check;        /* If 0, bypass checksum verify */
  19. {
  20.     struct udp udp;
  21.     struct pseudo_header ph;
  22.     int16 csum;
  23.  
  24.     if(bpp == NULLBUFP || *bpp == NULLBUF)
  25.         return;
  26.  
  27. #ifdef MAC
  28.     fprintf(trcwndp,"UDP:");
  29.  
  30.     /* Compute checksum */
  31.     ph.source = source;
  32.     ph.dest = dest;
  33.     ph.protocol = UDP_PTCL;
  34.     ph.length = len_mbuf(*bpp);
  35.     if((csum = cksum(&ph,*bpp,ph.length)) == 0)
  36.         check = 0;    /* No checksum error */
  37.  
  38.     ntohudp(&udp,bpp);
  39.  
  40.     fprintf(trcwndp," %u->%u",udp.source,udp.dest);
  41.     fprintf(trcwndp," len %u",udp.length);
  42.     if(udp.checksum == 0)
  43.         check = 0;
  44.     if(check)
  45.         fprintf(trcwndp," CHECKSUM ERROR (%u)",csum);
  46.  
  47.     fprintf(trcwndp,"\n");
  48. #else
  49.     printf("UDP:");
  50.  
  51.     /* Compute checksum */
  52.     ph.source = source;
  53.     ph.dest = dest;
  54.     ph.protocol = UDP_PTCL;
  55.     ph.length = len_mbuf(*bpp);
  56.     if((csum = cksum(&ph,*bpp,ph.length)) == 0)
  57.         check = 0;    /* No checksum error */
  58.  
  59.     ntohudp(&udp,bpp);
  60.  
  61.     printf(" %u->%u",udp.source,udp.dest);
  62.     printf(" len %u",udp.length);
  63.     if(udp.checksum == 0)
  64.         check = 0;
  65.     if(check)
  66.         printf(" CHECKSUM ERROR (%u)",csum);
  67.  
  68.     printf("\n");
  69. #endif
  70. }
  71.  
  72.  
  73.